//1.ArrayList是实现了基于动态数组的数据结构，LinkedList基于链表的数据结构。
//2.对于随机访问get和set，ArrayList觉得优于LinkedList，因为LinkedList要移动指针。
//3.对于新增和删除操作add和remove，LinedList比较占优势，因为ArrayList要移动数据。

import java.util.*;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class Differance {
        //测试arrayList插入速度和LinkedList插入速度
        public static void testArrayList() {
            List<Integer> list =new ArrayList<Integer>();

            for (int i = 0; i < 20000; i++) {
                list.add(i);
            }
            long startTime = System.currentTimeMillis();
            for (int i = 0; i < 10000; i++) {
                list.add(100, i);
            }
            System.out.println(list.size());
            long endTime = System.currentTimeMillis();
            int time=(int) (endTime - startTime);
            System.err.println("arrayList:运行时间:" + time + "ms");
        }


        public static void testLinkedList() {
            List<Integer> list =new LinkedList<Integer>();
            for (int i = 0; i < 20000; i++) {
                list.add(i);
            }
            long startTime = System.currentTimeMillis();
            for (int i = 0; i < 10000; i++) {
                list.add(100, i);
            }
            System.out.println(list.size());
            long endTime = System.currentTimeMillis();
            int time=(int) (endTime - startTime);
            System.err.println("linkedList:运行时间:" + time + "ms");
        }

        public static void main(String[] args) {
            Differance testSpead_list = null;
            testArrayList();
            testLinkedList();
        }
    }
